/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package exemplo1;

/**
 *
 * @author g0006185
 */
public class Exemplo1 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws Exception{ 
     new Contato().setVisible(true);
    }
}
    Exemplo1 ex = new Exemplo1();
        ContatoDto contato = null;
    
       
        Scanner sc = new Scanner(System.in,"ISO-8859-1");
        while(true){
            Long id = null;
            System.out.println("-----------------------------------------");
            System.out.println("1 - Adiciona contato");
            System.out.println("2 - Altera contato");
            System.out.println("3 - Deleta contato");
            System.out.println("4 - Lista contato");
            System.out.println("5 - Sair");
            System.out.println("-----------------------------------------");
            int var = sc.nextInt();
            switch (var) {
                case 1:
                   contato = ex.prencheContato();
                   ex.inserirContato(contato);
                    break;
                case 2:
                    System.out.println("Informe o id do conatato");
                    id = sc.nextLong();
                   contato = ex.prencheContato(id);
                   ex.alterarContato(contato);
                case 3:
                   id = sc.nextLong();
                   ex.deletaContato(id);
                case 4:
                   ex.listarContato();
                    break;
                case 5:
                    System.out.println("Bye!");
                    break;
                default:
                    System.out.println("Opção invalida");
            }
            if(var==5){
                break;
            }
        }
       
    }
       public void listarContato() throws Exception{
        ContatoDAO CD = new ContatoDAO();
         SimpleDateFormat dtp = new SimpleDateFormat("dd/MM/yyyy");
        
        List<ContatoDto> listacontato = CD.findContato();
        
        for(ContatoDto contato:listacontato){
            System.out.println(contato.getId()+" - "+contato.getNome()+" - " +contato.getEmail()+" - "+contato.getEndereco()+" - "+dtp.format(contato.getDataNascimento().getTime())+" \t");
           
        }
    }
       public void alterarContato(ContatoDto contato){
        try {
            ContatoDAO ctd = new ContatoDAO();
            ctd.alteracontato(contato);
        } catch (ClassNotFoundException | IOException | SQLException ex) {
            Logger.getLogger(Exemplo1.class.getName()).log(Level.SEVERE, null, ex);
        }
           
       }
       public void deletaContato(Long id){
        try {
            ContatoDAO ctd = new ContatoDAO();
            ctd.delcontato(id);
        } catch (ClassNotFoundException | IOException | SQLException ex) {
            Logger.getLogger(Exemplo1.class.getName()).log(Level.SEVERE, null, ex);
        }
           
       }
       public ContatoDto  prencheContato() throws ParseException{
        ContatoDto contato = new ContatoDto();
        System.out.println("Informe o nome:");
        Scanner sc = new Scanner(System.in,"ISO-8859-1");
        contato.setNome(sc.next());
        System.out.println("Informe o Email:");
        contato.setEmail(sc.next());
        System.out.println("Informe o Endereço:");
        contato.setEndereco(sc.next());
        System.out.println("Informe a Data de Nascimento:");
        String dt = sc.next();
        SimpleDateFormat dtp = new SimpleDateFormat("dd/MM/yyyy"); 
        Calendar date = Calendar.getInstance();
        date.setTime(dtp.parse(dt));
        contato.setDataNascimento(date);
        return contato;
           
       }
       public ContatoDto  prencheContato(long id) throws ParseException{
        ContatoDto contato = new ContatoDto();
        Scanner sc = new Scanner(System.in,"ISO-8859-1");
        System.out.println("Informe o Id");
        contato.setId(id);
        System.out.println("Informe o nome:");
        contato.setNome(sc.next());
        System.out.println("Informe o Email:");
        contato.setEmail(sc.next());
        System.out.println("Informe o Endereço:");
        contato.setEndereco(sc.next());
        System.out.println("Informe a Data de Nascimento:");
        String dt = sc.next();
        SimpleDateFormat dtp = new SimpleDateFormat("dd/MM/yyyy"); 
        Calendar date = Calendar.getInstance();
        date.setTime(dtp.parse(dt));
        contato.setDataNascimento(date);
        return contato; 
       }
       public void  inserirContato(ContatoDto contato) throws ParseException{

        try {
            ContatoDAO ct = new ContatoDAO();
            ct.adiciona(contato);
        } catch (FileNotFoundException | ClassNotFoundException | SQLException ex) {
             System.out.println(ex.getMessage());
        } catch (IOException ex) {
            System.out.println(ex.getMessage());
        } 
       }
